home *** CD-ROM | disk | FTP | other *** search
- From: Kay Roemer <roemer@informatik.uni-frankfurt.de>
- Posted-Date: Mon, 18 Apr 94 15:13:28 MESZ
- Received-Date: Mon, 18 Apr 94 15:13:28 +0200
- Message-Id: <9404181313.AA15886@hera.rbi.informatik.uni-frankfurt.de>
- Subject: sending signals from xdd's
- To: mint@atari.archive.umich.edu
- Date: Mon, 18 Apr 94 15:13:28 MESZ
- Mailer: Elm [revision: 70.85]
-
-
- While implementing TCP for MintNet, I came across the following
- problem:
-
- TCP provides for delivery of out-of-band or urgent data. When
- urgent data arrives on a socket, the process which is the owner
- of the socket (this concept of the sockets owner is much like
- the one used for terminals), must be signaled that urgent data
- has arrived.
-
- Usually Unixes do this by
- 1) sending this sockets owner a SIGURG signal and
- 2) waking up any processes seleting for exceptional conditions
- on this socket.
-
- The 2nd is impossible under MiNT, because Fselect() doesn't
- currently support selecting for exceptional conditions.
-
- The 1st would require a device driver to be able to send signals
- to ANY process, even if the current process' effective UID is
- not zero and different from the effective UID of the process that
- should be signaled.
-
- Currently the only possibility I see to do the 1st is to fork a
- new process (much like minixfs and modm0dev do) that is used to
- send signals.
-
- Is there another way (without a different process) to signal
- different processes from a device driver?
-
- Perhaps (as Juergen suggested some time ago) post_sig() should be
- made available for device drivers through struct kerinfo?
-
- Any ideas?
-
- Kay.
-